import os

'''
dir_path：需要批量修改名称的图片所在的文件夹路径
prefix：修改之后的图片名称的统一前缀
postfix：修改之后的图片名称的统一后缀

而除去前缀和后缀，就是代码中的index决定的图片名称中包含的数字，这些数字是递增的

假如prefix="pic_",postfix=" ",那么修改后的图片名称将会是pic_1.jpg,pic_2.jpg......

当然你也可以修改代码中的格式后缀，例如将'.jpg'改为'.png',也可以单独加一个参数去设置，这里我就不弄了

'''


def picname_format(dir_path):
    index = 0
    ##先判断这个文件夹是否存在
    is_exist = os.path.exists(dir_path)
    if ((is_exist == False)):
        print("该文件夹不存在，请输入正确的文件夹路径")
        return
    ##然后将指定文件夹下面的图片名称全都列出来，
    ##方便后面拼接全路径以读取和删除初识的图片
    file_name_list = os.listdir(dir_path)

    ##遍历所有的图片，以二进制读取之后删除该图片，然后再以新名称保存就达到了修改名称的目的
    for filename in file_name_list:
        index += 1
        file_path = dir_path + "\\" + filename

        '''
         #file_format=filename.split('.')[-1]

         这句话是为了实现保留图片格式，也即将此变量file_format替换下面的'.jpg'，可以试一下
        '''

        new_file_path = dir_path + "\\" + str(index) + '.jpg'
        with open(file_path, "rb") as f:
            content = f.read()
        os.remove(file_path)
        with open(new_file_path, "wb") as f:
            f.write(content)


if __name__ == '__main__':
    picname_format("./faces")